
namespace JTZY.Model.Goods.Dto
{
    /// <summary>
    /// checkstock查询对象
    /// </summary>
    public class StocklogmasterQueryDto : PagerInfo
    {
        public long userId { get; set; }
        public long? Id { get; set; }

        public string goodsName { get; set; }

        public string createTime { get; set; }
        public DateTime? BeginCreateDate { get; set; }
        public DateTime? EndCreateDate { get; set; }
    }

    /// <summary>
    /// checkstock输入输出对象
    /// </summary>
    public class StocklogmasterDto
    {
        [ExcelIgnore]
        public long StockId { get; set; }
        [ExcelIgnore]
        public string imageUrl { get; set; }
        [ExcelColumn(Name = "商品名称")]
        [ExcelColumnName("商品名称")]
        public string goodsName { get; set; }

        [Required(ErrorMessage = "商品分类不能为空")]
        [ExcelColumn(Name = "商品分类")]
        [ExcelColumnName("商品分类")]
        public string CategoryName { get; set; }
        [ExcelIgnore]
        public string Status { get; set; }
        [ExcelColumn(Name = "盘点月份")]
        [ExcelColumnName("盘点月份")]
        public string StockMonth { get; set; }
        [ExcelColumn(Name = "盘点时间")]
        [ExcelColumnName("盘点时间")]
        public DateTime? CreateDate { get; set; }
        [ExcelColumn(Name = "盘亏")]
        [ExcelColumnName("盘亏")]
        public int? Loss { get; set; } = 0;
        [ExcelColumn(Name = "盘盈")]
        [ExcelColumnName("盘盈")]
        public int Profit { get; set; } = 0;
        [ExcelColumn(Name = "商品种类数")]
        [ExcelColumnName("商品种类数")]
        public int? CheckCount { get; set; }
        [ExcelColumn(Name = "盘点正常单品数")]
        [ExcelColumnName("盘点正常单品数")]
        public int? NormalCount { get; set; }



        [ExcelColumn(Name = "盘点状态")]
        public string StatusLabel { get; set; }
    }


    public class StockPdDto
    {
        public long Id { get; set; }
        public string GoodName { get; set; }
        public long GoodId {  get; set; }
        public string ProductName {  get; set; }
        public long ProductId { get; set; }

        public long StockId { get; set; }
    }
    public class StockPdTreeDto
    {
        public long id { get; set; }

        public string name { get; set; }

        public List<StockPdTreeDto> children { get; set; }

    }


    public class StockPdRangeQueryDto
    {
        public long userId { get; set; }
        public int prodId { get; set; }

        public List<long> skuCodes { get; set; }
    }
    
    /// <summary>
    /// 导出
    /// </summary>
    public class StocklogExportDto
    {
        [Required(ErrorMessage = "商品名称不能为空")]
        [ExcelColumn(Name = "商品名称")]
        [ExcelColumnName("商品名称")]
        public string prodName { get; set; }

        [ExcelColumn(Name = "商品编码")]
        [ExcelColumnName("商品编码")]
        public string sn { get; set; }
        [ExcelColumn(Name = "系统库存数")]
        [ExcelColumnName("系统库存数")]
        public int stockQty { get; set; }
        [ExcelColumn(Name = "盘点数量")]
        [ExcelColumnName("盘点数量")]
        public int pdQty { get; set; }

        /// <summary>
        /// 盘点状态
        /// </summary>
        [ExcelColumn(Name = "盘点状态")]
        [ExcelColumnName("盘点状态")]
        public string dataStatus { get; set; }
        /// <summary>
        /// 商品码号 69码
        /// </summary>、
        [ExcelColumn(Name = "商品码号")]
        [ExcelColumnName("商品码号")]
        public string barCdoe { get; set; }
        [ExcelColumn(Name = "生产日期")]
        [ExcelColumnName("生产日期")]
        public string productDate { get; set; }
        /// <summary>
        /// 商品状态
        /// </summary>、
        [ExcelColumn(Name = "状态")]
        [ExcelColumnName("状态")]
        public string goodsStatus { get; set; }

        [ExcelIgnore]
        public string goodsName { get; set; }

    }
    /// <summary>
    /// 盘点单
    /// </summary>
    public class StockPdSheetDto
    {
        public StockPdSheetDto()
        {
            skuDtoList = new List<StockPdSheetSkuDetailsDto>();
        }
        /// <summary>
        /// 异常数
        /// </summary>
        public string abnormalNum { get; set; }

        public string categoryName { get; set; }

        public string dataStatus { get; set; }

        public string status { get; set; }

        public string finishedNum { get; set; }

        public long? id { get; set; }

        public string pic { get; set; }

        public string prodId { get; set; }

        public string prodName { get; set; }

        public int skuNum { get; set; }


        public List<StockPdSheetSkuDetailsDto> skuDtoList { get; set; }
    }

    public class StockPdSheetSkuDetailsDto
    {
        public StockPdSheetSkuDetailsDto()
        {
            inventorySkuDetailDtos = new List<InventorySkuDetailDtos>();
        }
        public long id { get; set; }

        public int productId { get; set; }

        public string dataStatus { get; set; }

        public string dataStatusName { get; set; }

        public string desc { get;set; }
        /// <summary>
        /// 差异数量
        /// </summary>
        public int differenceQuantity { get; set; }
        /// <summary>
        /// 库存数量
        /// </summary>
        public int inventoryQuantity { get; set; }

        public List<InventorySkuDetailDtos> inventorySkuDetailDtos { get; set; }

        public string pic { get;set; }

        /// <summary>
        /// masterId
        /// </summary>
        public long? prodInventoryId { get; set; }

        public int quantity { get; set; }

        public string skuCode { get; set; }
        public string skuName { get; set; }

        public string status { get; set; }

        public string statusName { get; set; }

    }

    public class InventorySkuDetailDtos
    {
        public string code { get; set; }

        public DateTime produceDate { get; set; }

        public string status { get; set; }
    }
}